package com.csesteel.crm.service;

import com.csesteel.crm.domain.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import java.util.List;

/**
 * Created by Administrator on 2015/4/21 0021.
 */
public interface UserService {
    /**
     * 对用户附加角色
     *
     * @param userId
     * @param roleId
     */
    void authUserByRole(Integer userId, Integer roleId);

    /**
     * 验证用户是否存在
     *
     * @param name
     * @param passwd
     * @return
     */
    User getUserByNameAndPasswd(String name, String passwd);

    /**
     * 保存用户
     *
     * @param user
     */
    void saveUser(User user);

    /**
     * 修改用户
     *
     * @param user
     */
    void updateUser(User user);

    /**
     * 根据ID删除用户
     *
     * @param id
     */
    void deleteUser(String id);

    /**
     * 查询所有用户
     *
     * @return
     */
    List<User> findAllUser();

    /**
     * 根据角色ID查询所以用户
     *
     * @param id
     * @return
     */
    List<User> findAllUserByRoleID(Integer id);

    /**
     * 根据用户id 查询用户
     *
     * @param id
     * @return
     */
    User getUserById(Integer id);


    /**
     * 可变参数传递
     *
     * @param pageNo
     * @param pageSize
     * @param name
     * @return
     */
    List<User> findAllUserByPage(int pageNo, int pageSize, String name);

    /**
     * 无参数传递
     *
     * @param pageNo
     * @param pageSize
     * @return
     */
    List<User> findAllUserByPageNoParam(int pageNo, int pageSize);

    /**
     * 查询所有总数
     * @return
     */
    long findCount();

    /**
     * 查询总数带参数
     * @param name
     * @return
     */
    public long findCountUsersWithParams(String name);

}
